package com.jiazhong.basic.pack0724;

import lombok.SneakyThrows;

import java.io.File;

// 描述文件类
public class DemoA {

    // 1. 获取到文件或者目录
    private static void a() {
        // 代表的是一个文件，1.txt 存在
        File file1 = new File("/Users/dailyblue/workspace/io/1.txt");
        // 代表的是一个文件，2.txt 不存在
        File file2 = new File("/Users/dailyblue/workspace/io/2.txt");
        // 代表的是一个目录（文件夹），a目录
        File file3 = new File("/Users/dailyblue/workspace/io/a");
        // 代表的是一个目录（文件夹），b目录
        File file4 = new File("/Users/dailyblue/workspace/io/b");

        System.out.println(file1);
        System.out.println(file2);
        System.out.println(file3);
        System.out.println(file4);
    }

    // 文件和目录的常见方法1️⃣
    private static void b() {
        File file = new File("/Users/dailyblue/workspace/io/2.txt");
        // 1.获取到名称
        String name = file.getName();
        // 2.获取到绝对路径
        String absolutePath = file.getAbsolutePath();
        // 3.判断是否是目录、是否是文件
        boolean isFile = file.isFile();
        boolean isDirectory = file.isDirectory();
        // 4.判断是否存在
        boolean exists = file.exists();
        // 5.获取到父目录
        String parentPath = file.getParent();
        System.out.println(name);
        System.out.println(absolutePath);
        System.out.println(isFile);
        System.out.println(isDirectory);
        System.out.println(exists);
        System.out.println(parentPath);
    }

    // 文件和目录的常见方法2️⃣
    private static void c() {
        File file = new File("/Users/dailyblue/workspace");
        if (file.isDirectory()) {
            // 获取到子内容
            File[] childFiles = file.listFiles();
            for (File childFile : childFiles) {
                System.out.println(childFile.getName());
            }
        }
    }

    // 文件和目录的常见方法3️⃣
    @SneakyThrows
    private static void d() {
        File file1 = new File("/Users/dailyblue/workspace/io/2.txt");
        if (!file1.exists()) {
            // 创建文件
            boolean isSuccess = file1.createNewFile();
            System.out.println(isSuccess);
        }
        File file2 = new File("/Users/dailyblue/workspace/io/c/a");
        if (!file2.exists()) {
            // 创建目录
            // boolean isSuccess = file2.mkdir();
            boolean isSuccess = file2.mkdirs();
            System.out.println(isSuccess);
        }
        // 删除文件
        file1.deleteOnExit();
        // 删除目录
        file2.deleteOnExit();
    }

    // 遍历某个盘符
    private static void e(File file, int index) {
        for (int i = 0; i < index; i++) {
            System.out.print(" ");
        }
        System.out.println(file.getName());
        if (file.isDirectory()) {
            File[] files = file.listFiles();
            for (File childFile : files) {
                int m = index + 1;
                e(childFile, m);
            }
        }
    }


    public static void main(String[] args) {
        File file = new File("/Users/dailyblue/workspace/java/IdeaProjects/jiazhong-baowenli-2025-1/jiazhong-basic");
        int index = 0;
        e(file, index);
    }
}